﻿// <copyright file="IPointMarker.cs" company="Oleg V. Polikarpotchkin">
// Copyright © 2008-2009 Oleg V. Polikarpotchkin. All Right Reserved
// </copyright>
// <author>Oleg V. Polikarpotchkin</author>
// <email>ov-p@yandex.ru</email>
// <date>2009-01-20</date>
// <summary>OpenWPFChart library. IPointMarker interface.</summary>
// <revision>$Id$</revision>

using System.Windows.Media;

namespace OpenWPFChart.Parts
{
	/// <summary>
	/// <see cref="IPointMarker"/> interface.
	/// </summary>
	/// <remarks>
	/// This interface is implemented by <see cref="ItemDataView"/> derived types containing
	/// points which can be rendered with usually small-sized pictograms.
	/// <para>Note the difference with <see cref="IBubble"/> interface.</para>
	/// </remarks>
	public interface IPointMarker
	{
		/// <summary>
		/// Gets or sets the <see cref="PointMarker"/> property.
		/// </summary>
		/// <value>Any Drawing or <c>null</c>.</value>
		/// <remarks>
		/// Point Marker isn't intented to be sized on rendering so it's the responsibility of
		/// the caller to set it to some resonable size.
		/// <para>If this property is <c>null</c> nothing is rendered.</para>
		/// </remarks>
		Drawing PointMarker { get; set; }

		/// <summary>
		/// Gets or sets the <see cref="PointMarkerVisible"/> property.
		/// </summary>
		/// <value><c>true</c> to draw Point Markers or <c>false</c> to hide them.</value>
		/// <remarks>
		/// This property indicates to the rendering type when show Point Markers.
		/// </remarks>
		bool PointMarkerVisible { get; set; }
	}
}
